home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Extra 1996 #5
/
Amiga Plus Extra 1996 May.iso
/
editoren
/
s220to8svx
/
s220to8svx1.4.asm
< prev
next >
Wrap
Assembly Source File
|
1996-08-01
|
46KB
|
2,943 lines
*************************************************************************
* *
* S220to8SVX Version 1.4 is FREEWARE !!! *
* NO commercial use without written permission of the author *
* *
* Copyright (c) 1991 Dieter Bruns *
* Lilienweg 131 *
* W-2725 Hemsbünde *
* GERMANY *
* *
* Assembler: Devpac Version 2.14D *
* or A68K *
* *
*************************************************************************
IFND .A68K
incdir "sys:devpac/include/" ; FOR DEVPAC
ENDC
include intuition/intuition.i
include arpbase.i
include hardware/custom.i
custom equ $dff000
rmb equ $dff016
aud1lc equ $b0
aud1len equ $b4
aud1per equ $b6
aud1vol equ $b8
aud0lc equ $a0
aud0len equ $a4
aud0per equ $a6
aud0vol equ $a8
IREQW equ 240
IREQH equ 40
GX equ 20
GY equ 27
XO equ 20
YO equ 160
PAPERXO equ XO
PAPERYO equ YO-33
PAPERXU equ 533
PAPERYU equ YO+32
REQW equ 210
REQH equ 65
REQOFFX equ REQW-40
REQOFFY equ REQH-20
TX equ 20
TY equ PAPERYO-50
blue equ 0
white equ 1
black equ 2
orange equ 3
NULL equ 0
PRINTDEZ MACRO
movem.l d0-d7/a0-a6,-(sp)
move.l \1,d2
bsr decl
movem.l (sp)+,d0-d7/a0-a6
ENDM
RELOL MACRO
lea \2(pc),a0
move.l \1,(a0)
ENDM
RELOB MACRO
lea \2(pc),a0
move.b \1,(a0)
ENDM
RELOW MACRO
lea \2(pc),a0
move.w \1,(a0)
ENDM
movem.l d0/a0,-(sp) ;save Para
sub.l a1,a1
move.l 4,a6
jsr -294(a6) ;FindTask
move.l d0,a2
tst.l $ac(a2) ;Process.pr_CLI
beq.s Workbench
; CLI
movem.l (sp)+,d0/a0 ;CLI-Para
bra start
Workbench
lea $5c(a2),a0 ;Process.pr_MsgPort
jsr -384(a6) ;WaitPort
lea $5c(a2),a0 ;Process.pr_MsgPort
jsr -372(a6) ;GetMsg
lea WBmsg(pc),a0
move.l d0,(a0) ;save WBmsg
movem.l (sp)+,d0/a0
start
bsr.s _main ;Hauptprog.
move.l d0,-(sp)
move.l WBmsg(pc),d0
beq.s exit ;CLI-Start
jsr -132(a6) ;Forbid
move.l WBmsg(pc),a1
jsr -378(a6) ;ReplyMsg
exit
move.l (sp)+,d0
rts
_main
move.l #custom,a5
move.l 4,a6
lea arpname(pc),a1
moveq #ArpVersion,d0
jsr -552(a6) ;OpenLibrary
lea _ArpBase(pc),a0
move.l d0,(a0)+
beq arpfailed
move.l d0,a1
move.l IntuiBase(a1),(a0)+
move.l DosBase(a1),(a0)+
move.l GfxBase(a1),(a0)
bsr getmem
tst.l d0
beq memfailed
lea NewWindowStructure1(pc),a0
lea _IntuitionBase(pc),a1
move.l (a1),a6
jsr -204(a6) ;OpenWindow
tst.l d0
beq windowfailed
lea FirstWindow(pc),a0
move.l d0,(a0)
move.l d0,a0
lea WScreen(pc),a1
move.l 46(a0),(a1)
lea Port(pc),a1
move.l wd_UserPort(a0),(a1)
move.l wd_RPort(a0),a0
move.l a0,a4
lea LogoImage(pc),a1
move.w #0,d0
move.w #0,d1
jsr -114(a6) ;DrawImage
move.w #0,d0
move.w #0,d1
move.l a4,a0
lea PlayText(pc),a1
jsr -216(a6) ;PrintItext
bsr balken
bsr paper
event
move.l 4,a6
move.l Port(pc),d2
move.l d2,a0
jsr -384(a6) ;WaitPort
move.l d2,a0
jsr -372(a6) ;GetMsg
move.l d0,a1 ;for ReplyMsg
move.l im_Class(a1),d4
move.l im_IAddress(a1),a2 ;grab the potential Gadget address
move.w gg_GadgetID(a2),d3
move.w im_Code(a1),d5 ;Code for MOUSEBUTTONS
jsr -378(a6) ;ReplyMsg
cmpi.l #GADGETUP,d4
beq gadget
cmpi.l #GADGETDOWN,d4
beq gadget
cmpi.l #CLOSEWINDOW,d4
beq closewindow
cmpi.l #MOUSEBUTTONS,d4
bne event
cmpi.w #MENUUP,d5 ;rmb released
beq doplay
bra event
gadget
move.l 40(a2),a0
jmp (a0)
closewindow
lea errornr(pc),a0
move.l #0,(a0)
bra ende
getmem
move.l #67584,d0
move.l #$10000,d1
jsr -198(a6) ;AllocMem
tst.l d0
beq fail
lea bu(pc),a0
move.l d0,(a0)
move.l #131072,d0
move.l #$02+$10000,d1
jsr -198(a6) ;AllocMem
tst.l d0
beq fail
lea conw(pc),a0
move.l d0,(a0)
move.l #131072,d0
move.l #$10000,d1
jsr -198(a6) ;AllocMem
tst.l d0
beq fail
lea undo(pc),a0
move.l d0,(a0)
fail
rts
loadgadget
lea fchar(pc),a0
move.b #0,(a0)
lea gethead(pc),a0
bsr _filereq
tst.l d0
beq event
lea filename(pc),a0
move.l d0,(a0)
bsr readsample
tst.l d0
bne event
lea type(pc),a0
move.b (a0),d0
cmp.b #3,d0
ble stru1
cmp.b #5,d0
ble stru2
cmp.b #6,d0
ble stru4
cmp.b #8,d0
ble stru2
cmp.b #10,d0
ble stru4
stru1
RELOL #32768,conlen
RELOW #6,step
RELOW #64,multi
RELOW #16,shift
RELOW #1,add
moveq #0,d4
bra make
stru2
RELOL #65536,conlen
RELOW #7,step
RELOW #128,multi
RELOW #32,shift
RELOW #1,add
moveq #1,d4
bra make
stru4
RELOL #131072,conlen
RELOW #8,step
RELOW #256,multi
RELOW #64,shift
RELOW #1,add
moveq #3,d4
make
bsr OpenMessage
move.l conw(pc),a2
RELOL #0,samplestart
lea conlen(pc),a1
RELOL (a1),sampleend
RELOL (a1),undoconlen
RELOL #0,sampleend
RELOW #PAPERXO,oldstartd4
RELOW #512+PAPERXO+2,oldendd4
RELOB #0,from30to15
doit
RELOL #0,counter
move.l file(pc),d1
move.l bu(pc),d2
move.l len(pc),d3
move.l _DOSBase(pc),a6
jsr -42(a6) ;Read
cmp.l d3,d0
bne Req2
move.l bu(pc),a0
cont
move.l #4,d0
move.l #63,d1
convertloop
moveq #0,d2
move.b 3(a0),d2
lsl.l #5,d2
lea ber(pc),a1
move.l d2,(a1)
moveq #0,d2
move.b 4(a0),d2
lsr.b #2,d2
or.l d2,(a1)
move.l ber(pc),d2
asr.w d0,d2
move.b d2,(a2)+
add.l #2,a0
dbra d1,convertloop
lea counter(pc),a1
add.l #132,(a1)
move.l counter(pc),d0
cmp.l len(pc),d0
bge done
add.l #4,a0
bra cont
done
dbra d4,doit
makeundo
move.l conlen(pc),d4
move.l conw(pc),a0
move.l undo(pc),a1
1$ move.b (a0)+,(a1)+
sub.l #1,d4
beq undodone
bra 1$
undodone
move.l _DOSBase(pc),a6
move.l file(pc),d1
lea wavepara(pc),a0
move.l a0,d2
move.l #$30,d3
jsr -42(a6) ;Read
cmp.l d3,d0
bne Req2
lea wavepara(pc),a0 ;for filename
addq.l #3,a0 ;offset
moveq #8,d1
lea samplename(pc),a1
copy
move.b (a0)+,(a1)+
dbra d1,copy
move.b #0,(a1)
lea sname(pc),a1
lea samplename(pc),a0
moveq #8,d0
1$
move.b (a0)+,(a1)+
dbra d0,1$
lea samplename(pc),a0
moveq #9,d0
move.b #0,0(a0,d0)
filtspace
cmp.b #32,0(a0,d0)
beq addnull
bgt switch3015
t2
dbra d0,filtspace
bra switch3015
addnull
move.b #0,0(a0,d0)
bra t2
switch3015
lea wavepara(pc),a0
moveq #0,d2
moveq #0,d0
move.b $10(a0),d2
move.b $11(a0),d0
rol #4,d0
or.w d0,d2
sub.w #$18,d2
lea tnr(pc),a1
move.l d2,(a1)
move.b $E(a0),d0
move.l d0,d2
btst #0,d0
beq dosamp30
RELOB #0,loaded30
bsr data15
bra contswitch
dosamp30
RELOB #1,loaded30
bsr data30
contswitch
lea reckey(pc),a0
move.l tnr(pc),d1
lsl.l #2,d1
add.l d1,a0
move.l #3,d1
lea tonenrtext(pc),a1
1$
move.b (a0)+,(a1)+
dbra d1,1$
bsr prep
lea rkey(pc),a1
jsr -216(a6) ;PrintItext
lea nameItexttext(pc),a1
moveq #8,d0
3$
move.b #32,(a1)+
dbra d0,3$
lea samplename(pc),a0
lea nameItexttext(pc),a1
moveq #8,d0
2$
move.b (a0)+,(a1)+
tst.b (a0)
dbeq d1,2$
bsr prep
lea nameItext(pc),a1
jsr -216(a6) ;PrintItext
move.l file(pc),d1
move.l _DOSBase(pc),a6
jsr -36(a6) ;Close
move.l #0,d0
RELOB #1,sound
lea VolumeGadget1SIBuff(pc),a0
move.w #"10",(a0)+
move.b #"0",(a0)
lea Volumepropgad1SInfo(pc),a0
move.w #6600,2(a0)
lea multiVolume(pc),a0
move.l #100,(a0)
lea Startgad(pc),a0
move.w #PAPERXO-SEGW,4(a0)
lea Endgad(pc),a0
move.w #PAPERXU,4(a0)
bsr CloseMessage
bsr drawloop
bra event
undoVolume
move.b sound(pc),d0
tst.b d0
beq Req4
move.l undoconlen(pc),d4
bsr OpenMessage
move.l undo(pc),a0
move.l conw(pc),a1
1$
move.b (a0)+,(a1)+
sub.l #1,d4
beq 2$
bra 1$
2$
lea VolumeGadget1SIBuff(pc),a0
move.w #"10",(a0)+
move.b #"0",(a0)
lea Volumepropgad1SInfo(pc),a0
move.w #6600,2(a0)
lea multiVolume(pc),a0
move.l #100,(a0)
bsr CloseMessage
move.b from30to15(pc),d0
beq 3$
bsr data1530
bra c3015
3$
bsr drawloop
bra event
drawloop
move.l conw(pc),a2
move.w multi(pc),d7
move.w shift(pc),d5
move.l conlen(pc),d4
moveq #XO+1,d6
bsr paper
nextdraw
sub.l #1,d4
beq fillstartend
move.b (a2)+,d2
sub.w #1,d7
bne nodraw
add.w add(pc),d6
move.w multi(pc),d7
nodraw
asr.b #2,d2
and.b #$FF,d2
ext.w d2
move.w #YO,d1
add.w d2,d1
sub.w #1,d5
bne nextdraw
move.w shift(pc),d5
move.l a4,a1
move.w d6,d0
jsr -246(a6) ;Draw
bra nextdraw
fillstartend
move.l a4,a1
bclr #3,33(a1) ;NOAREAOUTLINE
move.w #2,d0 ;COMPLEMENT
jsr -354(a6) ;SetDrMd
move.l a4,a1
move.w #blue,d0
jsr -342(a6) ;SetAPen
lea Endgad(pc),a0
move.w 4(a0),d0
move.w #PAPERYO,d1 ;yo
move.w #PAPERXU,d2 ;xu
cmp.w d0,d2
beq senofill1
move.w #PAPERYU,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
senofill1
lea Startgad(pc),a0
move.w 4(a0),d2
add.w #SEGW,d2
move.l a4,a1
move.w #PAPERXO,d0 ;xo
cmp.w d0,d2
beq newstartend
move.w #PAPERYO,d1 ;yo
move.w #PAPERYU,d3 ;yu
jsr -306(a6) ;RectFill
newstartend
lea samplestart(pc),a0
move.l (a0),d0
PRINTDEZ d0
lea StartGadgetSIBuff(pc),a1
lea buffer(pc),a0
moveq #6,d0
1$
move.b (a0)+,(a1)+
dbra d0,1$
lea conlen(pc),a0
move.l (a0),d0
sub.l sampleend(pc),d0
PRINTDEZ d0
lea EndGadgetSIBuff(pc),a1
lea buffer(pc),a0
moveq #6,d0
2$
move.b (a0)+,(a1)+
dbra d0,2$
bra balken ;(bsr rts)
drawstart
move.l _GfxBase(pc),a6
move.l a4,a1
bclr #3,33(a1) ;NOAREAOUTLINE
move.w #2,d0 ;COMPLEMENT
jsr -354(a6)
move.l a4,a1
move.w #blue,d0
jsr -342(a6) ;SetAPen
moveq #0,d0
move.w step(pc),d0
move.l samplestart(pc),d4
lsr.l d0,d4
add.w #PAPERXO,d4
move.l a4,a1
move.w #PAPERXO,d0 ;xo
move.w #PAPERYO,d1 ;yo
move.w oldstartd4(pc),d2 ;xu
cmp.w d0,d2
beq snofill1
move.w #PAPERYU,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
snofill1
move.l a4,a1
move.w #PAPERXO,d0 ;xo
move.w #PAPERYO,d1 ;yo
move.w d4,d2 ;xu
cmp.w d0,d2
beq snofill2
move.w #PAPERYU,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
snofill2
RELOW d4,oldstartd4
rts
data1530
move.w step(pc),d0
addq #1,d0
RELOW d0,step
lea samplestart(pc),a0
move.l (a0),d0
asl.l #1,d0
move.l d0,(a0)
lea conlen(pc),a0
move.l (a0),d0
asl.l #1,d0
move.l d0,(a0)
lea sampleend(pc),a0
move.l (a0),d0
asl.l #1,d0
move.l d0,(a0)
rts
data3015
move.w step(pc),d0
subq #1,d0
RELOW d0,step
lea samplestart(pc),a0
move.l (a0),d0
asr.l #1,d0
move.l d0,(a0)
lea conlen(pc),a0
move.l (a0),d0
asr.l #1,d0
move.l d0,(a0)
lea sampleend(pc),a0
move.l (a0),d0
asr.l #1,d0
move.l d0,(a0)
bra data15 ;bsr rts
drawend
move.l _GfxBase(pc),a6
move.l a4,a1
bclr #3,33(a1) ;NOAREAOUTLINE
move.w #2,d0 ;COMPLEMENT
jsr -354(a6)
move.l a4,a1
move.w #blue,d0
jsr -342(a6) ;SetAPen
moveq #0,d0
move.w step(pc),d0
move.l conlen(pc),d1
sub.l sampleend(pc),d1
lsr.l d0,d1
move.w d1,d4
add.w #PAPERXO+1,d4
move.w oldendd4(pc),d0 ;xo
move.w #PAPERYO,d1 ;yo
move.w #PAPERXU,d2 ;xu
cmp.w d0,d2
beq enofill1
move.w #PAPERYU,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
enofill1
move.w d4,d0 ;xo
move.w #PAPERYO,d1 ;yo
move.w #PAPERXU,d2 ;xu
cmp.w d0,d2
beq enofill2
move.w #PAPERYU,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
enofill2
RELOW d4,oldendd4
rts
adjustVolume
move.b sound(pc),d0
tst.b d0
beq Req4
lea Volumerequester(pc),a0
move.w 28(a0),d0
btst #13,d0
bne event
move.l FirstWindow(pc),a1
move.l _IntuitionBase(pc),a6
jsr -240(a6) ;Request
bra event
propVolume
move.l a4,-(sp)
lea Volumepropgad1SInfo(pc),a3
lea Volumepropgad(pc),a4
lea 13(a4),a4 ;GADGET Flags
propagain
moveq #0,d0
move.w 2(a3),d0
divu #66,d0
and.l #$0000ffff,d0
lea multiVolume(pc),a0
move.l d0,(a0)
bsr multiupdate
btst #7,(a4)
bne propagain
move.l (sp)+,a4
bra event
minus1Volume
moveq #-1,d0
bra dopmVolume
plus1Volume
moveq #1,d0
dopmVolume
lea multiVolume(pc),a1
add.l d0,(a1)
move.l (a1),d0
RELOL #0,min
RELOL #992,max
jsr minmax
move.l d0,(a1)
move.l d0,d1
cmp.w #992,d0
bne notfull
move.w #$FFFF,d1
bra setfull
notfull
mulu #66,d1
setfull
lea Volumepropgad1SInfo(pc),a0
move.w d1,2(a0)
bsr multiupdate
lea Volumepropgad(pc),a0
move.l FirstWindow(pc),a1
sub.l a2,a2
moveq #1,d0
jsr -432(a6) ;RefreshGList
bra event
multiupdate
PRINTDEZ d0
lea buffer(pc),a0
lea 4(a0),a0
lea VolumeGadget1SIBuff(pc),a1
moveq #2,d0
1$
move.b (a0)+,(a1)+
dbra d0,1$
move.l _IntuitionBase(pc),a6
lea VolumeGadget1(pc),a0
move.l FirstWindow(pc),a1
sub.l a2,a2
moveq #1,d0
jsr -432(a6) ;RefreshGList
rts
doadjustVolume
bsr OpenMessage
move.l undoconlen(pc),d4
move.l conw(pc),a2
move.l undo(pc),a1
move.l multiVolume(pc),d1
Volumeloop
sub.l #1,d4
beq Volumedone
move.b (a1)+,d2
ext.w d2
muls d1,d2
divs #100,d2
cmp.w #127,d2
ble notovermax
move.w #127,d2
notovermax
cmp.w #-128,d2
bgt notovermin
move.w #-128,d2
notovermin
move.b d2,(a2)+
bra Volumeloop
Volumedone
bsr CloseMessage
move.b from30to15(pc),d0
beq 1$
bsr data1530
bra c3015
1$
bsr drawloop
bra event
c30_to_15
move.b loaded30(pc),d0
beq Req3
lea samplefreq(pc),a0
cmp.l #$7530,(a0)
bne c1530
c3015
move.l conlen(pc),d0
move.l conw(pc),a0
move.l a0,a1
subq #1,d0
1$
move.b (a0),(a1)+
addq #2,a0
dbra d0,1$
bsr data3015
RELOB #1,from30to15
RELOW #2,add
bsr drawloop
bra event
c1530
bsr data1530
move.l conlen(pc),d0
move.l conw(pc),a1
move.l undo(pc),a0
subq #1,d0
1$
move.b (a0)+,(a1)+
dbra d0,1$
bsr data30
RELOB #0,from30to15
RELOW #1,add
bsr drawloop
bra event
Req3
lea ReqText3(pc),a1
bsr showreq
bra event
data15
bsr prep
lea srate15(pc),a1
jsr -216(a6) ;PrintItext
lea per(pc),a0
move.w #248,(a0)
lea rate(pc),a0
move.w #$3a98,(a0)
lea samplefreq(pc),a0
move.l #$3a98,(a0)
rts
data30
bsr prep
lea srate30(pc),a1
jsr -216(a6) ;PrintItext
lea per(pc),a0
move.w #124,(a0)
lea rate(pc),a0
lea samplefreq(pc),a1
move.l #$7530,(a1)
move.w #$7530,(a0)
rts
headerdata
move.l conlen(pc),d0
sub.l samplestart(pc),d0
sub.l sampleend(pc),d0
lea bodylen(pc),a0
move.l d0,4(a0)
add.l #$90,d0
lea header(pc),a0
move.l d0,4(a0)
move.l conlen(pc),d0
sub.l samplestart(pc),d0
sub.l sampleend(pc),d0
lea shotlen(pc),a0
move.l d0,(a0)
lea frequenz(pc),a0
move.l tnr(pc),d1
lsl.l #1,d1
add.l d1,a0
lea tonefreq(pc),a1
move.w (a0),(a1)
move.l samplefreq(pc),d0
moveq #0,d1
move.w tonefreq(pc),d1
divu d1,d0
and.l #$00ff,d0
move.l d0,d2
lea hicycle(pc),a0
move.l d0,(a0)
rts
prep
move.w #0,d0
move.w #0,d1
lea _IntuitionBase(pc),a0
move.l (a0),a6
move.l FirstWindow(pc),a1
move.l a4,a0
rts
save8SVX
lea samplename(pc),a0
lea fchar(pc),a1
moveq #8,d0
1$
move.b (a0)+,(a1)+
tst.b (a0)
dbeq d0,1$
move.b #0,(a1)
lea fchar(pc),a0
bsr getlen
sub.l #1,a0
move.b #".",(a0)+
move.b #"8",(a0)+
move.b #"S",(a0)+
move.b #"V",(a0)+
move.b #"X",(a0)+
move.b #0,(a0)
lea savehead(pc),a0
bsr _filereq
tst.l d0
beq event
lea filename(pc),a0
move.l d0,(a0)
bsr savesample
bra event
doplay
move.b sound(pc),d0
tst.b d0
beq Req4
play
move.w #$0180,intreq(a5)
move.w #$000f,dmacon(a5)
lea aud1lc(a5),a0
move.l conw(pc),d0
add.l samplestart(pc),d0
move.l d0,(a0)
lea aud0lc(a5),a0
move.l d0,(a0)
move.l conlen(pc),d1
sub.l samplestart(pc),d1
sub.l sampleend(pc),d1
beq event
lsr.l #1,d1
RELOW d1,audlen
move.w audlen(pc),aud1len(a5)
move.w #64,aud1vol(a5)
move.w per(pc),aud1per(a5)
move.w audlen(pc),aud0len(a5)
move.w #64,aud0vol(a5)
move.w per(pc),aud0per(a5)
move.w #$00ff,adkcon(a5) ;Modulation off
move.w #$8203,dmacon(a5) ;Kanal 1 on
wait
btst #8,intreqr(a5) ;audio1 set ?
beq wait
move.w #$0180,intreq(a5)
1$
move.w #$0f00,$dff186 ;Color03 ROT
btst #10,rmb
beq 3$
btst #8,intreqr(a5) ;audio1 set ?
beq 1$
3$
move.w #$0003,dmacon(a5) ;Kanal 1 off
bra event
Req4
lea ReqText4(pc),a1
bsr showreq
bra event
memfailed
RELOL #1,errornr
bra ende
windowfailed
RELOL #2,errornr
bra ende
requesterfailed
RELOL #3,errornr
bra ende
arpfailed
move.l 4,a6
lea intname(pc),a1
moveq #0,d0
jsr -552(a6) ;OpenLibrary
lea _IntuitionBase(pc),a0
move.l d0,(a0)
RELOL #4,errornr
ende
move.l errornr(pc),d0
bne dispalert
closeall
move.l FirstWindow(pc),d0
beq nowclose
move.l #0,a1
move.l _ArpBase(pc),a6
move.l d0,a0
jsr _LVOCloseWindowSafely(a6) ;CloseWindow
nowclose
move.l 4,a6
move.l _ArpBase(pc),d0
beq bigfail
move.l d0,a1
jsr -414(a6) ;CloseLibrary
move.l bu(pc),d0
beq no1
move.l bu(pc),a1
move.l #67584,d0
jsr -210(a6) ;FreeMem
no1
move.l conw(pc),d0
beq no2
move.l conw(pc),a1
move.l #131072,d0
jsr -210(a6) ;FreeMem
no2
move.l undo(pc),d0
beq bigfail
move.l undo(pc),a1
move.l #131072,d0
jsr -210(a6) ;FreeMem
bigfail
moveq #0,d0
rts
dispalert
lea _IntuitionBase(pc),a0
move.l (a0),d0
beq closeall
move.l d0,a6
lea Alertstring(pc),a0
move.l #Alertlen,d2
move.l errornr(pc),d1
subq.l #1,d1
mulu d1,d2
add.l d2,a0
move.w #80,d1
moveq #0,d0
jsr -90(a6) ;DisplayAlert
bra closeall
readsample
move.l _DOSBase(pc),a6
move.l filename(pc),d1
move.l #1005,d2
jsr -30(a6) ;Open
lea file(pc),a0
move.l d0,(a0)
beq Req2
move.l d0,d1
lea ctrl(pc),a0
move.l a0,d2
moveq #7,d3
move.l _DOSBase(pc),a6
jsr -42(a6) ;Read
cmp.l d3,d0
bne Req2
lea ctrlname(pc),a1
bsr comp
tst.l d0
beq s220
lea ctrlnames10(pc),a1
bsr comp
tst.l d0
bne Req1
s220
move.l file(pc),d1
lea type(pc),a0
move.l a0,d2
moveq #1,d3
move.l _DOSBase(pc),a6
jsr -42(a6) ;Read
cmp.l d0,d3
bne Req2
move.l #0,d0
rts
Req1
move.l file(pc),d1
jsr -36(a6) ;Close
lea ReqText1(pc),a1
bsr showreq
moveq #1,d0
rts
Req2
lea ReqText2(pc),a1
bsr showreq
move.l file(pc),d0
bne closefile
cReq2
moveq #1,d0
rts
closefile
move.l _DOSBase(pc),a6
move.l file(pc),d1
jsr -36(a6) ;Close
bra cReq2
savesample
bsr headerdata
move.l _DOSBase(pc),a6
move.l filename(pc),d1
move.l #1006,d2
jsr -30(a6) ;Open
tst.l d0
beq wopenf
lea file(pc),a0
move.l d0,(a0)
move.l file(pc),d1
lea header(pc),a0
move.l a0,d2
move.l #headersize,d3
jsr -48(a6) ;Write
cmp.l d3,d0
bne writefail
move.l file(pc),d1
move.l conw(pc),d2
add.l samplestart(pc),d2
move.l conlen(pc),d3
sub.l samplestart(pc),d3
sub.l sampleend(pc),d3
jsr -48(a6) ;Write
cmp.l d3,d0
bne writefail
writefail
move.l file(pc),d1
jsr -36(a6) ;Close
moveq #0,d0
rts
wopenf
move.l #1,d0
rts
comp
lea ctrl(pc),a0
moveq #6,d0
h1
cmp.b (a0)+,(a1)+
bne diff
dbra d0,h1
moveq #0,d0
rts
diff
moveq #1,d0
rts
showreq
lea _IntuitionBase(pc),a0
move.l (a0),a6
lea Messreq(pc),a0
move.l a1,24(a0)
move.w #1,-(sp)
move.l FirstWindow(pc),a1
move.l a1,-(sp)
move.w #REQOFFY,-(sp) ;offy
move.w #REQOFFX,-(sp) ;offx
move.w #REQH+3,-(sp) ;reqy
move.w #REQW+5,-(sp) ;reqx
bsr mousetest
add.l #14,sp
move.w d0,4(a0)
move.w d1,6(a0)
move.w 28(a0),d0
btst #13,d0
bne reqret
move.l FirstWindow(pc),a1
jsr -240(a6) ;Request
reqret
rts
_filereq
lea freq(pc),a1
move.l a0,(a1)
move.l _ArpBase(pc),a6
lea freq(pc),a0
move.b #%00001000,16(a0)
move.l FirstWindow(pc),12(a0)
jsr _LVOFileRequest(a6)
tst.l d0
beq retnull
bsr _build
lea fchar(pc),a0
move.b #0,(a0)
lea filetext(pc),a0
move.b (a0),d0
beq.b retnull
move.l a0,d0
rts
retnull
moveq #0,d0
rts
_build
lea dchar(pc),a0
bsr getlen ;get len directory
lea filetext(pc),a1
tst.l d0
beq done2
lea dchar(pc),a0
lea filetext(pc),a1
cp
move.b (a0)+,(a1)+
dbra d0,cp
cmp.b #':',-2(a1) ;subdirectory ?
beq done1 ;no
move.b #'/',-1(a1) ;add /
bra done2
done1
subq.l #1,a1
done2
lea fchar(pc),a0
bsr getlen
lea fchar(pc),a0
paste
move.b (a0)+,(a1)+
dbra d0,paste
rts
getlen
moveq #0,d0
w1
cmp.b #0,(a0)+
beq 1$
addq.l #1,d0
bra w1
1$
rts
paper
move.l _GfxBase(pc),a6
move.l a4,a1
move.w #0,d0 ;JAM1
jsr -354(a6)
move.l a4,a1
move.b #black,27(a1) ;OPen
bset #3,33(a1) ;AREAOUTLINE
move.w #white,d0
jsr -342(a6) ;SetAPen
move.w #PAPERXO-1,d0 ;xo
move.w #PAPERYO-1,d1 ;yo
move.w #PAPERXU+1,d2 ;xu
move.w #PAPERYU+1,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
move.l a4,a1
move.w #black,d0
jsr -342(a6) ;SetAPen
move.l a4,a1
move.w #XO,d0
move.w #YO,d1
jsr -240(a6) ;Move Nullpkt.
move.l a4,a1
move.w #PAPERXU,d0
move.w #YO,d1
jsr -246(a6) ;Draw
move.l a4,a1
move.w #XO,d0
move.w #YO,d1
jsr -240(a6) ;Move Nullpkt.
move.l a4,a1
move.w #orange,d0
jsr -342(a6) ;SetAPen
rts
OpenMessage
lea InfoReq(pc),a0
move.w 28(a0),d1
btst #13,d1
bne ret1
move.l FirstWindow(pc),a1
move.l _IntuitionBase(pc),a6
jsr -240(a6) ;Request
tst.l d0
beq ret1
RELOB #1,closereq
ret1
rts
CloseMessage
move.b closereq(pc),d0
beq ret2
lea InfoReq(pc),a0
move.l FirstWindow(pc),a1
move.l _IntuitionBase(pc),a6
jsr -120(a6) ;EndRequest
ret2
RELOB #0,closereq
rts
mousetest
movem.l a0/a1/d2/d3/d4,-(sp)
RELOW 24(sp),reqw
RELOW 26(sp),reqh
RELOW 28(sp),offx
RELOW 30(sp),offy
move.l 32(sp),a1
RELOW 36(sp),flag
move.w flag(pc),d0
beq screen
move.w 14(a1),d0 ;MouseX
move.w 12(a1),d1 ;MouseY
move.w 8(a1),d2 ;WindowW
move.w 10(a1),d3 ;WindowH
bra mdoit
screen
move.w 18(a1),d0 ;MouseX
move.w 16(a1),d1 ;MouseY
move.w 12(a1),d2 ;WindowW
move.w 14(a1),d3 ;WindowH
mdoit
sub.w d0,d2
move.w reqw(pc),d4
sub.w offx(pc),d4
cmp.w d4,d2
blt corx
bcorx
sub.w d1,d3
move.w reqh(pc),d4
sub.w offy(pc),d4
cmp.w d4,d3
blt cory
bcory
bra makeoff
corx
move.w flag(pc),d0
beq getscreenW
move.w 8(a1),d0 ;WindowW
bra mcont1
getscreenW
move.w 12(a1),d0 ;ScreenW
mcont1
sub.w d4,d0
bra bcorx
cory
move.w flag(pc),d0
beq getscreenH
move.w 10(a1),d1 ;WindowH
bra mcont2
getscreenH
move.w 14(a1),d1 ;ScreenH
mcont2
sub.w d4,d1
bra bcory
makeoff
sub.w offx(pc),d0
bmi negx
bnegx
sub.w offy(pc),d1
bmi negy
bra mback
negx
move.w #0,d0
bra bnegx
negy
move.w #0,d1
mback
movem.l (sp)+,a0/a1/d2/d3/d4
rts
AdjustFilereq
move.w #0,-(sp)
move.l WScreen(pc),a1
move.l a1,-(sp)
move.w #20,-(sp) ;offy
move.w #150,-(sp) ;offx
move.w 6(a0),-(sp) ;reqy
move.w 4(a0),-(sp) ;reqx
bsr mousetest
add.l #14,sp
move.w d0,(a0)
move.w d1,2(a0)
rts
dostart
move.b sound(pc),d0
tst.b d0
beq Req4
move.l FirstWindow(pc),a3
move.w 14(a3),-(sp)
move.w 12(a3),-(sp)
nextstart
moveq #0,d0
move.w 14(a3),d1
move.w 2(sp),d6
cmp.w d1,d6
beq wait1
sub.w d6,d1
move.w 14(a3),2(sp)
lea Startgad(pc),a2
add.w d1,4(a2)
moveq #0,d0
move.w 4(a2),d0
RELOL #PAPERXO-SEGW,min
lea Endgad(pc),a0
moveq #0,d1
move.w 4(a0),d1
sub.w #SEGW+1,d1
RELOL d1,max
bsr minmax
move.w d0,4(a2)
move.w d0,d4
move.w #PAPERXO-SEGW,d0
lea Startgad(pc),a0
move.w 4(a0),d1
sub.w d0,d1
and.w #$ffff,d1
moveq #0,d0
move.w step(pc),d0
lsl.l d0,d1
RELOL d1,samplestart
bsr newstartend
bsr drawstart
wait1
btst #6,$BFE001 ;lmb
beq nextstart
add.l #4,sp
bra event
doend
move.b sound(pc),d0
tst.b d0
beq Req4
move.l FirstWindow(pc),a3
move.w 14(a3),-(sp)
move.w 12(a3),-(sp)
nextend
moveq #0,d0
move.w 14(a3),d1
move.w 2(sp),d6
cmp.w d1,d6
beq wait2
sub.w d6,d1
move.w 14(a3),2(sp)
lea Endgad(pc),a2
add.w d1,4(a2)
moveq #0,d0
move.w 4(a2),d0
RELOL #PAPERXU,max
lea Startgad(pc),a0
moveq #0,d1
move.w 4(a0),d1
add.w #SEGW+1,d1
RELOL d1,min
bsr minmax
move.w d0,4(a2)
move.w d0,d4
move.w #PAPERXU,d0
lea Endgad(pc),a0
move.w 4(a0),d1
sub.w d1,d0
and.w #$ffff,d0
moveq #0,d1
move.w step(pc),d1
lsl.l d1,d0
RELOL d0,sampleend
bsr newstartend
bsr drawend
wait2
btst #6,$BFE001 ;lmb
beq nextend
add.l #4,sp
bra event
startstring
bsr CorrInt
lea samplestart(pc),a1
move.l d0,(a1)
bra dospm
startplus
moveq #2,d0
bra startgpm
startminus
moveq #-2,d0
startgpm
lea samplestart(pc),a1
add.l d0,(a1)
dospm
move.b sound(pc),d0
tst.b d0
beq Req4
move.l (a1),d0
RELOL #0,min
move.l conlen(pc),d1
sub.l sampleend(pc),d1
RELOL d1,max
bsr minmax
move.l d0,(a1)
bsr drawstart
move.l samplestart(pc),d0
moveq #0,d1
move.w step(pc),d1
lsr.l d1,d0
lea Startgad(pc),a0
move.w d0,4(a0)
add.w #PAPERXO-SEGW,4(a0)
bsr newstartend
bra event
endstring
bsr CorrInt
move.l conlen(pc),d1
sub.l d0,d1
lea sampleend(pc),a1
move.l d1,(a1)
bra doepm
endplus
move.l #-2,d2
bra endgpm
endminus
move.l #2,d2
endgpm
lea sampleend(pc),a1
add.l d2,(a1)
doepm
move.b sound(pc),d0
tst.b d0
beq Req4
move.l (a1),d0
RELOL #0,min
move.l conlen(pc),d1
sub.l samplestart(pc),d1
RELOL d1,max
bsr minmax
move.l d0,(a1)
bsr drawend
move.l conlen(pc),d1
sub.l sampleend(pc),d1
moveq #0,d0
move.w step(pc),d0
lsr.l d0,d1
move.w #PAPERXO,d0
add.w d1,d0
lea Endgad(pc),a0
move.w d0,4(a0)
bsr newstartend
bra event
balken
move.l _GfxBase(pc),a6
move.l a4,a1
bclr #3,33(a1) ;NOAREAOUTLINE
move.w #0,d0 ;JAM1
jsr -354(a6)
move.l a4,a1
move.w #black,d0
jsr -342(a6) ;SetAPen
move.w #PAPERXO-SEGW,d0 ;xo
move.w #PAPERYO-10,d1 ;yo
move.w #PAPERXU+SEGW,d2 ;xu
move.w #PAPERYO-10+SEGH,d3 ;yu
move.l a4,a1
jsr -306(a6) ;RectFill
move.l _IntuitionBase(pc),a6
lea Startgad(pc),a0
move.l FirstWindow(pc),a1
sub.l a2,a2
moveq #4,d0
jsr -432(a6) ;RefreshGList
move.l conlen(pc),d0
sub.l samplestart(pc),d0
sub.l sampleend(pc),d0
PRINTDEZ d0
lea buffer(pc),a0
lea samplelentext(pc),a1
moveq #6,d0
1$ move.b (a0)+,(a1)+
dbra d0,1$
move.w #0,d0
move.w #0,d1
move.l a4,a0
lea sampleleninfo(pc),a1
jsr -216(a6) ;PrintItext
rts
***** a2=StrGadget LONGINT
CorrInt
move.l a6,-(sp)
move.l 34(a2),a0 ;SInfo
move.l (a0),a0 ;StrBuff
move.l _ArpBase(pc),a6
jsr _LVOAtol(a6)
move.l (sp)+,a6
rts
minmax
movem.l d1/d2,-(sp)
ext.l d0
add.l #50,d0
move.l min(pc),d2
add.l #50,d2
cmp.l d2,d0
blt setmin
move.l max(pc),d2
add.l #50,d2
cmp.l d2,d0
bgt setmax
beq domax
sub.l #50,d0
bra mmback
setmin
bsr _beep
move.l min(pc),d0
bra mmback
setmax
bsr _beep
domax
move.l max(pc),d0
mmback
movem.l (sp)+,d1/d2
rts
_beep
movem.l d0/d1/a0/a1/a6,-(sp)
move.w #$0003,dmacon(a5) ;clear audio 0+1 DMA-Kanal
move.l #wave,aud0lc(a5)
move.w #wavesize/2,aud0len(a5)
move.w #64,aud0vol(a5)
move.w #220,aud0per(a5)
move.l #wave,aud1lc(a5)
move.w #wavesize/2,aud1len(a5)
move.w #64,aud1vol(a5)
move.w #225,aud1per(a5)
move.w #$00ff,adkcon(a5) ;Modulation off
move.w #$8203,dmacon(a5) ;channel 0+1 on
move.l _DOSBase(pc),a6
move.l #7,d1
jsr -198(a6) ;Delay
move.w #$0003,dmacon(a5) ;channel 0+1 off
movem.l (sp)+,d0/d1/a0/a1/a6
rts
decl
clr.b d3
move.l d2,d4
bpl plus
neg.l d2
move.b #1,d3
plus
moveq #5,d0 ;digits-1
lea buffer(pc),a0
add.l #1,a0
lea table10(pc),a1
ne moveq #'0',d1
dec addq #1,d1
sub.l (a1),d2
bcc.s dec
subq #1,d1
add.l (a1),d2
move.b d1,(a0)+
lea 4(a1),a1
dbra d0,ne
lea buffer(pc),a0
rep
move.b #' ',(a0)+
cmp.b #'0',(a0)
beq rep
tst.b d3
beq done3
move.b #'-',-1(a0)
done3
tst.l d4
bne done4
lea buffer(pc),a0
move.b #"0",6(a0)
done4
rts
table10
dc.l 100000
dc.l 10000
dc.l 1000
dc.l 100
dc.l 10
dc.l 1
buffer ds.b 7
dc.b 0
cnop 0,2
freq
dc.l head
fname dc.l fchar
dc.l dchar
dc.l 0
dc.w 0
dc.l AdjustFilereq
dc.l 0
head ds.b 30
cnop 0,2
fchar ds.b 33
cnop 0,2
dchar ds.b 34
cnop 0,2
header dc.b "FORM",$00,$00,$00,$00
dc.b "8SVXVHDR",$00,$00,$00,$14
shotlen dc.b $00,$00,$40,$00
dc.b $00,$00,$00,$00
hicycle dc.b $00,$00,$00,$00
rate dc.b $00,$00,$01,$00
dc.b $00,$01,$00,$00
dc.b "NAME",$00,$00,$00,$0c
sname ds.b 12
dc.b "(c) ",$00,$00,$00,$2a
dc.b "for converter software: Dieter Bruns 1989",0
dc.b "ANNO",$00,$00,$00,$1a
dc.b "Sampling Hardware ROLAND",$00,$00
bodylen
dc.b "BODY",$00,$00,$80,$00
headersize equ *-header
cnop 0,2
reckey
dc.b 32,"C 1",32,"C#1",32,"D 1",32,"D#1",32,"E 1",32,"F 1",32,"F#1",32,"G 1",32,"G#1",32,"A 1",32,"A#1",32,"B 1"
dc.b 32,"C 2",32,"C#2",32,"D 2",32,"D#2",32,"E 2",32,"F 2",32,"F#2",32,"G 2",32,"G#2",32,"A 2",32,"A#2",32,"B 2"
dc.b 32,"C 3",32,"C#3",32,"D 3",32,"D#3",32,"E 3",32,"F 3",32,"F#3",32,"G 3",32,"G#3",32,"A 3",32,"A#3",32,"B 3"
dc.b 32,"C 4",32,"C#4",32,"D 4",32,"D#4",32,"E 4",32,"F 4",32,"F#4",32,"G 4",32,"G#4",32,"A 4",32,"A#4",32,"B 4"
dc.b 32,"C 5",32,"C#5",32,"D 5",32,"D#5",32,"E 5",32,"F 5",32,"F#5",32,"G 5",32,"G#5",32,"A 5",32,"A#5",32,"B 5"
dc.b 32,"C 6",32,"C#6",32,"D 6",32,"D#6",32,"E 6",32,"F 6",32,"F#6",32,"G 6",32,"G#6",32,"A 6",32,"A#6",32,"B 6"
dc.b 32,"C 7",32,"C#7",32,"D 7",32,"D#7",32,"E 7",32,"F 7",32,"F#7",32,"G 7"
frequenz
dc.w 33,35,37,39,41,44,46,49,52,55,58,62
dc.w 65,69,73,78,82,87,92,98,104,110,117,123
dc.w 131,139,147,156,165,175,185,196,208,220,233,247
dc.w 262,277,293,311,330,349,370,392,415,440,466,494
dc.w 523,554,587,622,659,699,740,784,831,880,932,988
dc.w 1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976
dc.w 2094,2218,2350,2490,2638,2794,2960,3136
ctrlname dc.b "ROLAND",0
cnop 0,2
ctrlnames10 dc.b "ROLS10",0
cnop 0,2
gethead dc.b "Load Roland_S-220 file",0
cnop 0,2
savehead dc.b "Save S-220 file as 8SVX",0
cnop 0,2
filetext ds.b 80
cnop 0,2
samplename ds.b 10
cnop 0,2
* Variables
intname dc.b 'intuition.library',0
cnop 0,2
arpname ArpName
_ArpBase ds.l 1
_IntuitionBase ds.l 1
_DOSBase ds.l 1
_GfxBase ds.l 1
FirstWindow ds.l 1
Messwindowptr ds.l 1
errornr ds.l 1
bu ds.l 1
conw ds.l 1
undo ds.l 1
filename ds.l 1
file ds.l 1
Port ds.l 1
ber ds.l 1
counter ds.l 1
conlen ds.l 1
undoconlen ds.l 1
tnr ds.l 1
samplefreq ds.l 1
WScreen ds.l 1
min ds.l 1
max ds.l 1
WBmsg dc.l 0
len dc.l 67584
multi ds.w 1
shift ds.w 1
audlen ds.w 1
per ds.w 1
tonefreq ds.w 1
add ds.w 1
step ds.w 1
reqw ds.w 1
reqh ds.w 1
offx ds.w 1
offy ds.w 1
flag ds.w 1
oldstartd4 dc.w PAPERXO
oldendd4 dc.w 512+PAPERXO+2
closereq ds.b 1
type ds.b 1
sound ds.b 1
from30to15 ds.b 1
loaded30 dc.b 0
cnop 0,2
ctrl ds.b 7
cnop 0,2
wavepara ds.b $30
SEGH equ 6
SEGW equ 12
Startgad:
dc.l startstr
VHXY1 dc.w PAPERXO-SEGW,PAPERYO-10
dc.w SEGW,SEGH
dc.w NULL
dc.w GADGIMMEDIATE
dc.w BOOLGADGET
dc.l SEBorder1
dc.l NULL
dc.l NULL
dc.l NULL
dc.l NULL
dc.w 36
dc.l dostart
STRY equ 105
STRWX equ 70
STRWY equ 10
SMINUSX equ 20
SSTRX equ SMINUSX+22
SPLUSX equ SSTRX+STRWX+4
EMINUSX equ 420
ESTRX equ EMINUSX+22
EPLUSX equ ESTRX+STRWX+4
StringBorder:
dc.w -2,-1
dc.b black,blue,RP_JAM1,9
dc.l StringBorderVectors,StringBorder2
StringBorderVectors:
dc.w 0,0
dc.w STRWX-1,0
dc.w STRWX-1,STRWY
dc.w 0,STRWY
dc.w 0,0
dc.w 2,-2
dc.w STRWX+1,-2
dc.w STRWX+1,STRWY-2
dc.w STRWX-1,STRWY
StringBorder2:
dc.w -2,-1
dc.b white,blue,RP_JAM1,3
dc.l StringBorderVectors2,NULL
StringBorderVectors2:
dc.w STRWX,STRWY-2
dc.w STRWX,-1
dc.w 1,-1
startstr
dc.l Endgad
dc.w SSTRX,STRY,STRWX,STRWY,GADGHCOMP,RELVERIFY+STRINGCENTER+LONGINT
dc.w STRGADGET
dc.l StringBorder,NULL,StartText,NULL,StartGadgetSInfo
dc.w 44
dc.l startstring
StartGadgetSInfo:
dc.l StartGadgetSIBuff
dc.l NULL
dc.w 0,7,0,0,0,0,0,0
dc.l 0
samplestart
dc.l 00
dc.l NULL
StartGadgetSIBuff:
dc.b ' 0',0
cnop 0,2
Endgad:
dc.l Endstr
dc.w PAPERXU,PAPERYO-10
dc.w SEGW,SEGH
dc.w NULL
dc.w GADGIMMEDIATE
dc.w BOOLGADGET
dc.l SEBorder1
dc.l NULL
dc.l NULL
dc.l NULL
dc.l NULL
dc.w 40
dc.l doend
Endstr
dc.l Startplusgad
dc.w ESTRX,STRY,STRWX,STRWY,GADGHCOMP,RELVERIFY+STRINGCENTER+LONGINT
dc.w STRGADGET
dc.l StringBorder,NULL,EndText,NULL,EndGadgetSInfo
dc.w 56
dc.l endstring
EndGadgetSInfo:
dc.l EndGadgetSIBuff
dc.l NULL
dc.w 0,7,0,0,0,0,0,0
dc.l 0
sampleend
dc.l 00
dc.l NULL
EndGadgetSIBuff:
dc.b ' 0',0
cnop 0,2
PlusText
dc.b black,0,RP_JAM1,0
dc.w 3,0
dc.l TOPAZ80
dc.l PlusTextText
dc.l NULL
PlusTextText
dc.b '+',0
cnop 0,2
MinusText
dc.b black,0,RP_JAM1,0
dc.w 3,0
dc.l TOPAZ80
dc.l MinusTextText
dc.l NULL
MinusTextText
dc.b '-',0
cnop 0,2
StartText
dc.b black,0,RP_JAM1,0
dc.w 12,-12
dc.l TOPAZ80
dc.l StartTextText
dc.l NULL
StartTextText
dc.b 'Start',0
cnop 0,2
EndText
dc.b black,0,RP_JAM1,0
dc.w 20,-12
dc.l TOPAZ80
dc.l EndTextText
dc.l NULL
EndTextText
dc.b 'End',0
cnop 0,2
PlayText
dc.b black,0,RP_JAM1,0
dc.w TX,TY-16
dc.l TOPAZ80
dc.l PlayTextText
dc.l NULL
PlayTextText
dc.b 'Right Mousebutton: Play Sample',0
cnop 0,2
PMBX equ 17
PMBY equ 10
Startplusgad:
dc.l Startminusgad
dc.w SPLUSX,STRY
dc.w PMBX,PMBY
dc.w NULL
dc.w GADGHCOMP+RELVERIFY
dc.w BOOLGADGET
dc.l StartBorder3
dc.l NULL
dc.l PlusText
dc.l NULL
dc.l NULL
dc.w 48
dc.l startplus
Startminusgad:
dc.l Endplusgad
dc.w SMINUSX,STRY
dc.w PMBX,PMBY
dc.w NULL
dc.w GADGHCOMP+RELVERIFY
dc.w BOOLGADGET
dc.l StartBorder3
dc.l NULL
dc.l MinusText
dc.l NULL
dc.l NULL
dc.w 52
dc.l startminus
StartBorder3:
dc.w -1,-1
dc.b black,blue,RP_JAM1,9
dc.l StartBorderVectors3,StartBorder4
StartBorderVectors3:
dc.w 0,0
dc.w PMBX-1,0
dc.w PMBX-1,PMBY
dc.w 0,PMBY
dc.w 0,0
dc.w 2,-2
dc.w PMBX+1,-2
dc.w PMBX+1,PMBY-2
dc.w PMBX-1,PMBY
StartBorder4:
dc.w -1,-1
dc.b white,blue,RP_JAM1,3
dc.l StartBorderVectors4,NULL
StartBorderVectors4:
dc.w PMBX,PMBY-2
dc.w PMBX,-1
dc.w 1,-1
Endplusgad:
dc.l Endminusgad
dc.w EPLUSX,STRY
dc.w PMBX,PMBY
dc.w NULL
dc.w GADGHCOMP+RELVERIFY
dc.w BOOLGADGET
dc.l PMBorder1
dc.l NULL
dc.l PlusText
dc.l NULL
dc.l NULL
dc.w 60
dc.l endplus
Endminusgad:
dc.l NULL
dc.w EMINUSX,STRY
dc.w PMBX,PMBY
dc.w NULL
dc.w GADGHCOMP+RELVERIFY
dc.w BOOLGADGET
dc.l PMBorder1
dc.l NULL
dc.l MinusText
dc.l NULL
dc.l NULL
dc.w 64
dc.l endminus
PMBorder1:
dc.w -1,-1
dc.b black,blue,RP_JAM1,9
dc.l PMBorder1Vectors,PMBorder2
PMBorder1Vectors:
dc.w 0,0
dc.w PMBX-1,0
dc.w PMBX-1,PMBY
dc.w 0,PMBY
dc.w 0,0
dc.w 2,-2
dc.w PMBX+1,-2
dc.w PMBX+1,PMBY-2
dc.w PMBX-1,PMBY
PMBorder2:
dc.w -1,-1
dc.b white,blue,RP_JAM1,3
dc.l PMBorder2Vectors,NULL
PMBorder2Vectors:
dc.w PMBX,PMBY-2
dc.w PMBX,-1
dc.w 1,-1
SEBorder1:
dc.w 0,0
dc.b orange,black,RP_JAM1
dc.b 5
dc.l SEBorderVectors1
dc.l NULL
SEBorderVectors1:
dc.w 0,0
dc.w SEGW,0
dc.w SEGW,SEGH
dc.w 0,SEGH
dc.w 0,0
srate15
dc.b 3,0,RP_JAM2,0
dc.w TX+352,TY
dc.l TOPAZ80
dc.l srate15text
dc.l 0
srate15text
dc.b 'Sampling-Rate 15 kHz',0
cnop 0,2
srate30
dc.b 3,0,RP_JAM2,0
dc.w TX+352,TY
dc.l TOPAZ80
dc.l srate30text
dc.l 0
srate30text
dc.b 'Sampling-Rate 30 kHz',0
cnop 0,2
rkey
dc.b 3,0,RP_JAM2,0
dc.w TX+212,TY
dc.l TOPAZ80
dc.l rkeytext
dc.l tonenr
rkeytext
dc.b 'REC KEY =',0
cnop 0,2
nameItext
dc.b 3,0,RP_JAM2,0
dc.w TX,TY
dc.l TOPAZ80
dc.l nameItexttexthead
dc.l tonenr
nameItexttexthead
dc.b 'Samplename: '
nameItexttext
ds.b 9
dc.b 0
cnop 0,2
tonenr
dc.b 3,0,RP_JAM2,0
dc.w TX+284,TY
dc.l TOPAZ80
dc.l tonenrtext
dc.l 0
tonenrtext
dc.b ' ',0
cnop 0,2
INFOX equ SPLUSX+65
INFOY equ STRY
sampleleninfo
dc.b black,0,RP_JAM1,0
dc.w INFOX,INFOY
dc.l TOPAZ80
dc.l sampleinfotext
dc.l samplelen
sampleinfotext
dc.b 'Samplelen:',0
cnop 0,2
samplelen
dc.b white,0,RP_JAM2,0
dc.w INFOX+80,INFOY
dc.l TOPAZ80
dc.l samplelentext
dc.l bytes
samplelentext
dc.b ' ',0
cnop 0,2
bytes
dc.b white,0,RP_JAM1,0
dc.w INFOX+140,INFOY
dc.l TOPAZ80
dc.l bytestext
dc.l NULL
bytestext
dc.b 'Bytes',0
cnop 0,2
TOPAZ80
dc.l TOPAZ80name
dc.w TOPAZ_EIGHTY
dc.b FS_NORMAL,FPF_ROMFONT
TOPAZ80name
dc.b "topaz.font",0
cnop 0,2
boldfont
dc.l boldfontname
dc.w TOPAZ_EIGHTY
dc.b FSF_BOLD,FPF_ROMFONT
boldfontname
dc.b "topaz.font",0
cnop 0,2
NewWindowStructure1:
dc.w 40,0
dc.w 555,200
dc.b blue,white
dc.l CLOSEWINDOW+GADGETUP+GADGETDOWN+MOUSEBUTTONS
dc.l WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH+RMBTRAP
dc.l Gadget1
dc.l NULL
dc.l NewWindowName1
dc.l NULL
dc.l NULL
dc.w 5,5
dc.w -1,-1
dc.w WBENCHSCREEN
NewWindowName1:
dc.b 'S220to8SVX Version 1.4 © 1991 Dieter Bruns',0
cnop 0,2
Gadget1:
dc.l Gadget2
dc.w GX,GY
dc.w 85,28
dc.w GADGHCOMP
dc.w RELVERIFY
dc.w BOOLGADGET
dc.l Border1
dc.l NULL
dc.l IText1
dc.l NULL
dc.l NULL
dc.w NULL
dc.l loadgadget
BX equ 85
BY equ 28
Border1:
dc.w -1,-1
dc.b black,blue,RP_JAM1,9
dc.l BorderVectors1,Border2
BorderVectors1:
dc.w 0,0
dc.w BX-1,0
dc.w BX-1,BY
dc.w 0,BY
dc.w 0,0
dc.w 2,-2
dc.w BX+1,-2
dc.w BX+1,BY-2
dc.w BX-1,BY
Border2:
dc.w -1,-1
dc.b white,blue,RP_JAM1,3
dc.l BorderVectors2,NULL
BorderVectors2:
dc.w BX,BY-2
dc.w BX,-1
dc.w 1,-1
IText1:
dc.b 2,0,RP_JAM1,0
dc.w 10,4
dc.l TOPAZ80
dc.l ITextText1
dc.l IText2
ITextText1:
dc.b 'Load and',0
cnop 0,2
IText2:
dc.b 2,0,RP_JAM1,0
dc.w 10,15
dc.l TOPAZ80
dc.l ITextText2
dc.l NULL
ITextText2:
dc.b 'convert',0
cnop 0,2
Gadget2:
dc.l Gadget3
dc.w GX+100,GY
dc.w 85,28
dc.w GADGHCOMP
dc.w RELVERIFY
dc.w BOOLGADGET
dc.l Border1
dc.l NULL
dc.l IText3
dc.l NULL
dc.l NULL
dc.w 4
dc.l save8SVX
IText3:
dc.b 2,0,RP_JAM1,0
dc.w 10,4
dc.l TOPAZ80
dc.l ITextText3
dc.l IText4
ITextText3:
dc.b 'Save as',0
cnop 0,2
IText4:
dc.b 2,0,RP_JAM1,0
dc.w 10,15
dc.l TOPAZ80
dc.l ITextText4
dc.l NULL
ITextText4:
dc.b '8SVX',0
cnop 0,2
Gadget3:
dc.l Gadget4
dc.w GX+200,GY
dc.w 85,28
dc.w GADGHCOMP
dc.w RELVERIFY
dc.w BOOLGADGET
dc.l Border1
dc.l NULL
dc.l IText5
dc.l NULL
dc.l NULL
dc.w 8
dc.l c30_to_15
IText5:
dc.b 2,0,RP_JAM1,0
dc.w 5,9
dc.l TOPAZ80
dc.l ITextText5
dc.l NULL
ITextText5:
dc.b '30<>15kHz',0
cnop 0,2
Gadget4
dc.l Gadget5
dc.w GX+300,GY
dc.w 85,28
dc.w GADGHCOMP
dc.w RELVERIFY
dc.w BOOLGADGET
dc.l Border1
dc.l NULL
dc.l IText8
dc.l NULL
dc.l NULL
dc.w 16
dc.l adjustVolume
IText8:
dc.b 2,0,RP_JAM1,0
dc.w 10,4
dc.l TOPAZ80
dc.l ITextText8
dc.l IText9
ITextText8:
dc.b 'Change',0
cnop 0,2
IText9:
dc.b 2,0,RP_JAM1,0
dc.w 10,15
dc.l TOPAZ80
dc.l ITextText9
dc.l NULL
ITextText9:
dc.b 'Volume',0
cnop 0,2
Gadget5:
dc.l Startgad
dc.w GX+400,GY
dc.w 85,28
dc.w GADGHCOMP
dc.w RELVERIFY
dc.w BOOLGADGET
dc.l Border1
dc.l NULL
dc.l IText10
dc.l NULL
dc.l NULL
dc.w 20
dc.l undoVolume
IText10:
dc.b 2,0,RP_JAM1,0
dc.w 10,4
dc.l TOPAZ80
dc.l ITextText10
dc.l IText11
ITextText10:
dc.b 'Original',0
cnop 0,2
IText11:
dc.b 2,0,RP_JAM1,0
dc.w 10,15
dc.l TOPAZ80
dc.l ITextText11
dc.l NULL
ITextText11:
dc.b 'Volume',0
cnop 0,2
ReqText1
dc.b black,0,RP_JAM1,0
dc.w 40,25
dc.l boldfont
dc.l ReqText1text
dc.l ReqText11
ReqText1text
dc.b "ROLAND File !",0
cnop 0,2
ReqText11
dc.b black,0,RP_JAM1,0
dc.w 40,10
dc.l TOPAZ80
dc.l ReqText11text
dc.l 0
ReqText11text
dc.b "Not an",0
cnop 0,2
ReqText2
dc.b black,0,RP_JAM1,0
dc.w 20,20
dc.l boldfont
dc.l ReqText2text
dc.l 0
ReqText2text
dc.b "DISK-Error !",0
cnop 0,2
ReqText3
dc.b black,0,RP_JAM1,0
dc.w 20,25
dc.l boldfont
dc.l ReqText3text
dc.l ReqText31
ReqText3text
dc.b "is not 30 kHz !",0
cnop 0,2
ReqText31
dc.b black,0,RP_JAM1,0
dc.w 20,10
dc.l TOPAZ80
dc.l ReqText31text
dc.l 0
ReqText31text
dc.b "Sampling-Rate",0
cnop 0,2
ReqText4
dc.b black,0,RP_JAM1,0
dc.w 30,20
dc.l TOPAZ80
dc.l ReqText4text
dc.l 0
ReqText4text
dc.b "There is no sound !",0
cnop 0,2
ReqBorder
dc.w 0,2
dc.b 2,0,RP_JAM1
dc.b 9
dc.l ReqVectors1
dc.l ReqBorder2
ReqVectors1
dc.w 0,0
dc.w REQW-4,0
dc.w REQW-4,REQH-3
dc.w 0,REQH-3
dc.w 0,0
dc.w 0,-2
dc.w REQW-1,-2
dc.w REQW-1,REQH-3
dc.w REQW-3,REQH-3
ReqBorder2
dc.w 0,2
dc.b 1,0,RP_JAM1
dc.b 3
dc.l ReqVectors2
dc.l NULL
ReqVectors2
dc.w REQW-2,REQH-4
dc.w REQW-2,-1
dc.w 1,-1
Messreq
dc.l 0
dc.w 50,100
dc.w REQW,REQH
dc.w 0,0
dc.l MessreqGadget1
dc.l ReqBorder
dc.l 0
dc.w 0
dc.b 3,0
dc.l 0
ds.b 32
dc.l 0
dc.l 0
ds.b 36
MessreqGadget1
dc.l 0
dc.w 110,40
dc.w OKBX,OKBY+2
dc.w GADGHCOMP
dc.w RELVERIFY+ENDGADGET
dc.w BOOLGADGET+REQGADGET
dc.l OkCancelBorder1
dc.l 0
dc.l OkText
dc.l 0
dc.l 0
dc.w 12
dc.l event
InfoReq
dc.l 0
dc.w 180,80
dc.w IREQW,IREQH
dc.w 0,0
dc.l 0
dc.l InfoBorder1
dc.l InfoIText1
dc.w 0
dc.b 3,0
dc.l 0
ds.b 32
dc.l 0
dc.l 0
ds.b 36
InfoBorder1:
dc.w 0,2
dc.b 2,0,RP_JAM1
dc.b 9
dc.l InfoBorderVectors1
dc.l InfoBorder2
InfoBorderVectors1:
dc.w 0,0
dc.w IREQW-4,0
dc.w IREQW-4,IREQH-3
dc.w 0,IREQH-3
dc.w 0,0
dc.w 0,-2
dc.w IREQW-1,-2
dc.w IREQW-1,IREQH-3
dc.w IREQW-3,IREQH-3
InfoBorder2:
dc.w 0,2
dc.b 1,0,RP_JAM1
dc.b 3
dc.l InfoBorderVectors2
dc.l NULL
InfoBorderVectors2:
dc.w IREQW-2,IREQH-4
dc.w IREQW-2,-1
dc.w 1,-1
InfoIText1:
dc.b 2,0,RP_JAM1,0
dc.w 10,6
dc.l TOPAZ80
dc.l InfoITextText1
dc.l InfoIText2
InfoITextText1:
dc.b 'Please wait...',0
cnop 0,2
InfoIText2:
dc.b 2,0,RP_JAM1,0
dc.w 90,18
dc.l TOPAZ80
dc.l InfoITextText2
dc.l 0
InfoITextText2
dc.b "I'm working",0
cnop 0,2
VolumeREQW equ 190
VolumeREQH equ 60
VolumeBX equ VolumeREQW-3
VolumeBY equ VolumeREQH-5
Volumerequester
dc.l 0
dc.w 200,30
dc.w VolumeREQW,VolumeREQH
dc.w 0,0
dc.l VolumeGadget1
dc.l VolumeBorder1
dc.l VolumeText
dc.w 0
dc.b 0,0
dc.l 0
ds.b 32
dc.l 0
dc.l 0
ds.b 36
VolumeText:
dc.b black,0,RP_JAM1,0
dc.w 20,10
dc.l TOPAZ80
dc.l VolumeTextText
dc.l NULL
VolumeTextText:
dc.b 'Set percentage',0
cnop 0,2
VolumeBorder1:
dc.w 0,2
dc.b 2,0,RP_JAM1
dc.b 9
dc.l VolumeBorderVectors1
dc.l VolumeBorder2
VolumeBorderVectors1:
dc.w 0,0
dc.w VolumeBX,0
dc.w VolumeBX,VolumeBY+2
dc.w 0,VolumeBY+2
dc.w 0,0
dc.w 2,-2
dc.w VolumeBX+2,-2
dc.w VolumeBX+2,VolumeBY
dc.w VolumeBX,VolumeBY+2
VolumeBorder2:
dc.w 0,2
dc.b 1,0,RP_JAM1
dc.b 3
dc.l VolumeBorderVectors2
dc.l NULL
VolumeBorderVectors2:
dc.w VolumeBX+1,VolumeBY
dc.w VolumeBX+1,-1
dc.w 1,-1
LGY equ 25
VolumeGadget1
dc.l VolumeGadget2
dc.w VolumeTRX,LGY,34,9,GADGHCOMP,RELVERIFY+STRINGRIGHT+LONGINT
dc.w STRGADGET+REQGADGET
dc.l Border3,NULL,NULL,NULL,VolumeGadget1SInfo
dc.w 24
dc.l event
VolumeGadget1SInfo:
dc.l VolumeGadget1SIBuff
dc.l NULL
dc.w 0,4,0,0,0,0,0,0
dc.l 0
multiVolume
dc.l 100
dc.l NULL
VolumeGadget1SIBuff:
dc.b '100',0
cnop 0,2
OKBX equ 68
OKBY equ 10
VolumeGadget2:
dc.l VolumeGadget3
dc.w 18,40
dc.w OKBX,OKBY+2
dc.w GADGHCOMP
dc.w RELVERIFY+ENDGADGET
dc.w BOOLGADGET+REQGADGET
dc.l OkCancelBorder1
dc.l NULL
dc.l CancelText
dc.l NULL
dc.l NULL
dc.w 28
dc.l event
VolumeGadget3:
dc.l Volumeplus1gad
dc.w 98,40
dc.w OKBX,OKBY+2
dc.w GADGHCOMP
dc.w RELVERIFY+ENDGADGET
dc.w BOOLGADGET+REQGADGET
dc.l OkCancelBorder1
dc.l NULL
dc.l OkText
dc.l NULL
dc.l NULL
dc.w 32
dc.l doadjustVolume
OkCancelBorder1:
dc.w 0,0
dc.b 2,0,RP_JAM1
dc.b 9
dc.l OkCancelBorderVectors1
dc.l OkCancelBorder2
OkCancelBorderVectors1:
dc.w 0,0
dc.w OKBX,0
dc.w OKBX,OKBY+2
dc.w 0,OKBY+2
dc.w 0,0
dc.w 2,-2
dc.w OKBX+2,-2
dc.w OKBX+2,OKBY
dc.w OKBX,OKBY+2
OkCancelBorder2:
dc.w 0,0
dc.b 1,0,RP_JAM1
dc.b 3
dc.l OkCancelBorderVectors2
dc.l NULL
OkCancelBorderVectors2:
dc.w OKBX+1,OKBY
dc.w OKBX+1,-1
dc.w 1,-1
Volumeplus1gad:
dc.l Volumeminus1gad
dc.w VolumeTRX+VolumeTRM+LMPROP+LMPP,LGY
dc.w PMBX,PMBY
dc.w NULL
dc.w GADGHCOMP+RELVERIFY
dc.w BOOLGADGET+REQGADGET
dc.l PMBorder1
dc.l NULL
dc.l PlusText
dc.l NULL
dc.l NULL
dc.w 68
dc.l plus1Volume
VolumeTRX equ 20
VolumeTRM equ 38
LMPROP equ 18
LMPP equ 82
Volumeminus1gad:
dc.l Volumepropgad
dc.w VolumeTRX+VolumeTRM,LGY
dc.w PMBX,PMBY
dc.w NULL
dc.w GADGHCOMP+RELVERIFY
dc.w BOOLGADGET+REQGADGET
dc.l PMBorder1
dc.l NULL
dc.l MinusText
dc.l NULL
dc.l NULL
dc.w 72
dc.l minus1Volume
Volumepropgad:
dc.l NULL
dc.w VolumeTRX+VolumeTRM+LMPROP,LGY-3
dc.w 80,13
dc.w GADGHIMAGE
dc.w GADGIMMEDIATE
dc.w PROPGADGET+REQGADGET
dc.l PropImage1
dc.l NULL
dc.l NULL
dc.l NULL
dc.l Volumepropgad1SInfo
dc.w 76
dc.l propVolume
Volumepropgad1SInfo:
dc.w FREEHORIZ+PROPBORDERLESS
dc.w 0,-1
dc.w 660,-1
dc.w 0,0,0,0,0,0
PropImage1:
dc.w 0,0
dc.w 22,13
dc.w 0
dc.l PropImageData1
dc.b $0003,$0000
dc.l NULL
CancelText:
dc.b black,0,RP_JAM1,0
dc.w 10,3
dc.l TOPAZ80
dc.l CancelTextText
dc.l NULL
CancelTextText:
dc.b 'Cancel',0
cnop 0,2
OkText:
dc.b black,0,RP_JAM1,0
dc.w 28,3
dc.l TOPAZ80
dc.l OKTextText
dc.l NULL
OKTextText:
dc.b 'OK',0
cnop 0,2
GBX equ 43
GBY equ 10
Border3:
dc.w -10,-1
dc.b black,blue,RP_JAM1,9
dc.l BorderVectors3,Border4
BorderVectors3:
dc.w 0,0
dc.w GBX-1,0
dc.w GBX-1,GBY
dc.w 0,GBY
dc.w 0,0
dc.w 2,-2
dc.w GBX+1,-2
dc.w GBX+1,GBY-2
dc.w GBX-1,GBY
Border4:
dc.w -10,-1
dc.b white,blue,RP_JAM1,3
dc.l BorderVectors4,NULL
BorderVectors4:
dc.w GBX,GBY-2
dc.w GBX,-1
dc.w 1,-1
* begin of alerts
Alertstring
dc.w 200
dc.b 24," NOT ENOUGH MEMORY ",0,$01
dc.w 200
dc.b 44," GOODBYE !! ",0,$01
dc.w 200
dc.b 64,"=== Press any MOUSEBUTTON ===",0,$00
cnop 0,2
Alertlen equ *-Alertstring
dc.w 200
dc.b 24," Can't open Window ",0,$01
dc.w 200
dc.b 44," Might be memoryproblem ",0,$01
dc.w 200
dc.b 64,"=== Press any MOUSEBUTTON ===",0,$00
cnop 0,2
dc.w 200
dc.b 24," Can't open requester ",0,$01
dc.w 200
dc.b 44," Might be memoryproblem ",0,$01
dc.w 200
dc.b 64,"=== Press any MOUSEBUTTON ===",0,$00
cnop 0,2
dc.w 200
dc.b 24," Can't open arp.library ",0,$01
dc.w 200
dc.b 44," must be in drawer libs ",0,$01
dc.w 200
dc.b 54," or memoryproblem ",0,$01
dc.w 200
dc.b 64,"=== Press any MOUSEBUTTON ===",0,$00
cnop 0,2
LogoImage:
dc.w 20,13
dc.w 104,8
dc.w 2
dc.l LogoImagedata
dc.b $0002,$0000
dc.l NULL
IFND .A68K
SECTION customdata,DATA_C ;Assembler: DEVPAC
ENDC
IFD .A68K
DATA customdata,CHIP ;Assembler: A68K
ENDC
LogoImagedata:
dc.w $1002,$007E,$0002,$0000,$3F00,$0000,$0000,$2001
dc.w $01E3,$0002,$0000,$F180,$0000,$0000,$4000,$8361
dc.w $8C1F,$8001,$B0C0,$0000,$0000,$8000,$8061,$8004
dc.w $0000,$3F80,$0000,$0000,$81C0,$8061,$B3CD,$E760
dc.w $39CE,$D99D,$8C00,$8221,$00C3,$629B,$4D80,$619B
dc.w $7336,$DE00,$4602,$01F6,$E77B,$9980,$FB76,$676D
dc.w $B300,$23C4,$03BD,$BBCC,$F301,$DECC,$3D99,$EE00
PropImageData1:
dc.w $0000,$0000,$3FFF,$F000,$0000,$0800,$0000,$0800
dc.w $0000,$0800,$0000,$0800,$0000,$0800,$0000,$0800
dc.w $0000,$0800,$0000,$0800,$0000,$0800,$0000,$0800
dc.w $0000,$0000,$7FFF,$F800,$C000,$0C00,$C048,$0400
dc.w $C1CE,$0400,$C7CF,$8400,$DFCF,$E400,$FFCF,$F400
dc.w $DFCF,$E400,$C7CF,$8400,$C1CE,$0400,$C048,$0400
dc.w $C000,$0400,$7FFF,$F800
wave
dc.b 0,10
dc.b 20,38
dc.b 47,56
dc.b 63,72
dc.b 81,90
dc.b 106,118
dc.b 122,127
dc.b -127,-122
dc.b -118,-106
dc.b -90,-81
dc.b -72,-63
dc.b -56,-47
dc.b -38,-20
dc.b -10,0
wavesize equ *-wave
END